#ifndef AUVMAINWINDOW_H
#define AUVMAINWINDOW_H

#include <QMainWindow>
#include <QTcpSocket>
#include <QGraphicsScene>
#include <QList>
#include <QPointF>

QT_BEGIN_NAMESPACE
namespace Ui { class AUVMainWindow; }
QT_END_NAMESPACE

class AUVMainWindow : public QMainWindow {
    Q_OBJECT

public:
    explicit AUVMainWindow(QWidget *parent = nullptr);
    ~AUVMainWindow();

private slots:
    void onAutoModeClicked();
    void onManualModeClicked();
    void onForwardClicked();
    void onBackwardClicked();
    void onTurnLeftClicked();
    void onTurnRightClicked();
    void onConnected();
    void onDisconnected();
    void onError();

private:
    Ui::AUVMainWindow *ui;
    QTcpSocket* tcpClient;
    QGraphicsScene* mapScene;  // 轨迹显示场景
    QList<QPointF> trackPoints;  // 用于存储轨迹点
    QPointF currentPoint;  // 当前轨迹点位置
    qreal currentAngle = 0;  // 当前方向角度（以度为单位）
    void sendTrackPoint(const QPointF &point);  // 发送轨迹点并绘制
    void generateRandomPathToTarget(const QPointF &targetPoint);  // 自动模式下的路径规划
};

#endif // AUVMAINWINDOW_H
